package com.code.day16;

public class Day16DanLiLanHan {
    /**
     * 不让外界随意使用构造方法new对象
     */
    private Day16DanLiLanHan() {

    }

    /**
     * 创建对象时由于是懒汉式,不着急new对象
     */
    private static Day16DanLiLanHan day16DanLiLanHan = null;

    /**
     * 什么时候想用对象,再new
     */
    public static Day16DanLiLanHan getDay16DanLiLanHan() {
         /*
           代表的是如果对象为null,再去抢锁执行
           如果不是null,没必要抢锁,直接返回对象
         */
        if (day16DanLiLanHan == null) {
            synchronized (Day16DanLiLanHan.class) {
                 /*
                  判断要不要new
                 */
                if (day16DanLiLanHan == null) {
                    day16DanLiLanHan = new Day16DanLiLanHan();
                }
            }
        }
        return day16DanLiLanHan;
    }

}
